<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	xmlns:sec="http://www.springframework.org/security/facelets/tags">
<h:body>
	<ui:composition template="/templates/templateAgendamento.xhtml">
		<ui:param name="mbean" value="${filaAtendimentoMB}" />

		<ui:define name="content">
			<h:form id="formFila">
				<p:toolbar>
					<p:toolbarGroup align="right">
						<p:commandButton value="Novo Agendamento"
							action="#{agendaMB.novoAgendamento(mbean.novaAgenda)}"
							update=":formAgenda" oncomplete="agendaDialog.show();"
							global="true" />
					</p:toolbarGroup>
				</p:toolbar>

				<p:spacer height="4" />

				<p:dataTable value="#{mbean.filaAtendimento}" var="atendimento"
					id="fila" emptyMessage="Nenhum agendamento encontrado!"
					sortBy="#{atendimento.horario}">
					<f:facet name="header">  
	            		Fila de Atendimento  
	        		</f:facet>

					<p:column sortBy="#{atendimento.sequencia}" style="width:50px">
						<f:facet name="header">
							<h:outputText value="Seq" />
						</f:facet>
						<h:outputText value="#{atendimento.sequencia}" />
					</p:column>

					<p:column sortBy="#{atendimento.horario}">
						<f:facet name="header">
							<h:outputText value="Horário" />
						</f:facet>
						<h:outputText value="#{atendimento.horario}">
							<f:convertDateTime pattern="HH:mm" locale="pt_BR"
								timeZone="America/Sao_Paulo" />
						</h:outputText>
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="Paciente" />
						</f:facet>
						<h:outputText value="#{atendimento.paciente}" />
					</p:column>

					<p:column sortBy="#{atendimento.chegada}">
						<f:facet name="header">
							<h:outputText value="Chegada" />
						</f:facet>
						<h:outputText value="#{atendimento.chegada}">
							<f:convertDateTime pattern="HH:mm" locale="pt_BR"
								timeZone="America/Sao_Paulo" />
						</h:outputText>
					</p:column>

					<p:column sortBy="#{atendimento.medico}">
						<f:facet name="header">
							<h:outputText value="Médico" />
						</f:facet>
						<h:outputText value="#{atendimento.medico}" />
					</p:column>

					<p:column sortBy="#{atendimento.convenio}">
						<f:facet name="header">
							<h:outputText value="Convênio" />
						</f:facet>
						<h:outputText value="#{atendimento.convenio}" />
					</p:column>

					<p:column sortBy="#{atendimento.status}">
						<f:facet name="header">
							<h:outputText value="Status" />
						</f:facet>
						<h:outputText value="#{atendimento.status}" />
					</p:column>

					<p:column sortBy="#{atendimento.tipo}">
						<f:facet name="header">
							<h:outputText value="Tipo" />
						</f:facet>
						<h:outputText value="#{atendimento.tipo}" />
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="Início" />
						</f:facet>
						<h:outputText value="#{atendimento.inicio}">
							<f:convertDateTime pattern="HH:mm" locale="pt_BR"
								timeZone="America/Sao_Paulo" />
						</h:outputText>
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="Término" />
						</f:facet>
						<h:outputText value="#{atendimento.termino}">
							<f:convertDateTime pattern="HH:mm" locale="pt_BR"
								timeZone="America/Sao_Paulo" />
						</h:outputText>
					</p:column>

					<p:column style="width:32px">
						<p:commandLink
							action="#{agendaMB.editarAgendamento(atendimento.agenda)}"
							update=":formAgenda" title="#{msg.acaoVisualizar}"
							rendered="#{not empty atendimento.agenda}"
							oncomplete="agendaDialog.show();">
							<p:graphicImage value="#{resource['images/edit.png']}" />
						</p:commandLink>
					</p:column>
				</p:dataTable>
			</h:form>

			<ui:decorate template="/sistema/agenda/modalAgenda.xhtml">
				<ui:define name="eventCloseDialog">
					<p:ajax event="close" update=":formFila"
						listener="#{mbean.atualizarFila}" />
				</ui:define>
			</ui:decorate>

		</ui:define>

		<ui:define name="opcoes">
			<h:form id="formOpcoes">
				<h:panelGrid columns="1">
					<p:fieldset legend="Médico">
						<p:selectOneMenu value="#{mbean.medico}"
							converter="medicoConverter" var="var" style="width:200px"
							effect="fade">
							<sec:ifAllGranted roles="ROLE_ADMIN">
								<f:selectItem itemLabel="Todos" itemValue="#{null}" />
							</sec:ifAllGranted>
							<f:selectItems value="#{mbean.medicos}" var="medico"
								itemLabel="#{medico.funcionario.usuario.nome}" />
							<p:ajax event="change" update=":formFila" process="@this" />

							<p:column>
								<p:graphicImage value="#{resource['images/doctor.png']}"
									rendered="#{not empty var}" />
							</p:column>

							<p:column>
								<h:outputText value="#{var.funcionario.usuario.nome}"
									rendered="#{not empty var}" />
								<h:outputText value="Todos" rendered="#{empty var}" />
							</p:column>
						</p:selectOneMenu>
					</p:fieldset>

					<p:fieldset legend="Data">
						<p:calendar mode="inline" locale="pt" value="#{mbean.dataFila}">
							<p:ajax event="dateSelect" update=":formFila" process="@this" />
						</p:calendar>
					</p:fieldset>

					<p:commandButton action="#{mbean.carregarPesquisaAgenda}"
						value="Pesquisa Avançada" update=":idModalPEsquisaAgenda"
						oncomplete="modalPesquisaAgenda.show()" />
				</h:panelGrid>
			</h:form>

			<p:dialog id="idModalPEsquisaAgenda" header="Localizar Agendamento"
				width="800" height="300" dynamic="true" resizable="false"
				widgetVar="modalPesquisaAgenda" modal="true" appendToBody="true"
				hideEffect="explode">
				<h:form id="formPesquisaAgenda">
					<p:toolbar>
						<p:toolbarGroup align="right">
							<p:commandButton value="Pesquisar"
								action="#{mbean.pesquisarAgenda}" update=":formFila"
								onclick="modalPesquisaAgenda.hide()" />
						</p:toolbarGroup>
					</p:toolbar>

					<p:panel header="Preencha os parâmetros de pesquisa">
						<h:panelGrid columns="4"
							columnClasses="coluna-direita, coluna-esquerda, coluna-direita, coluna-esquerda">
							<h:outputLabel value="Nome do Paciente: " />
							<p:inputText value="#{mbean.pesquisaAgenda.paciente.nome}"
								size="40" />

							<h:outputLabel value="Médico: " />
							<p:selectOneMenu value="#{mbean.pesquisaAgenda.medico}"
								converter="medicoConverter">
								<f:selectItem itemLabel="Selecione" itemValue="#{null}" />
								<f:selectItems value="#{mbean.medicos}" var="medico"
									itemLabel="#{medico.funcionario.usuario.nome}" />
							</p:selectOneMenu>

							<h:outputLabel value="De: " />
							<p:calendar value="#{mbean.pesquisaAgenda.dataInicio}"
								showOn="button" pattern="dd/MM/yyyy" navigator="true"
								locale="pt" />

							<h:outputLabel value="Até: " />
							<p:calendar value="#{mbean.pesquisaAgenda.dataTermino}"
								showOn="button" pattern="dd/MM/yyyy" navigator="true"
								locale="pt" />

						</h:panelGrid>
					</p:panel>
				</h:form>
			</p:dialog>

		</ui:define>
	</ui:composition>
</h:body>
</html>
